package com.culturalCenter.dataCenter.mapper.site;

import com.culturalCenter.dataCenter.customEntity.site.CustomSiteAlerts;
import com.culturalCenter.dataCenter.entity.site.SiteAlerts;
import com.culturalCenter.dataCenter.entity.site.SiteAlertsMonth;
import com.culturalCenter.dataCenter.mapper.base.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface SiteAlertsMapper extends BaseMapper<SiteAlerts> {

    /**
     * 根据场地id和时间段获取报警信息列表
     *
     * @param siteId
     * @param beginTime
     * @param endTime
     *
     * @return
     */
    List<CustomSiteAlerts> getSiteAlertByTime(@Param("siteId") String siteId, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 根据报警类型获取报警信息列表
     *
     * @param type
     * @param date
     * @param siteCode
     *
     * @return
     */
    List<SiteAlerts> getMonitoringRecordList(@Param("type") int type, @Param("date") String date, @Param("siteCode") String siteCode);

    /**
     * 批量插入
     *
     * @param siteAlertsList
     */
    void insertBatch(@Param("siteAlertsList") List<SiteAlerts> siteAlertsList);

    /**
     * 查询培训现场警报
     *
     * @param trainingId
     * @param periodsId
     * @param pageNum
     * @param pageSize
     *
     * @return
     */
    List<SiteAlerts> queryException(@Param("trainingId") String trainingId, @Param("periodsId") String periodsId, @Param("pageNum") int pageNum, @Param("pageSize") int pageSize);

    /**
     * 查询培训现场警报图片
     *
     * @param id
     *
     * @return
     */
    List<SiteAlerts> queryExceptionPicture(String id);

    /**
     * 统计场地报警次数
     *
     * @param siteId
     * @param beginTime
     * @param endTime
     *
     * @return
     */
    Integer countAlertsNumBySiteId(@Param("siteId") String siteId, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    /**
     * 查询本月报警
     *
     * @return
     */
    List<SiteAlertsMonth> selectSiteAlertMonth();

}
